package com.siwei.apply.service;

import com.siwei.apply.domain.res.GyjsydjfwscdjRes;
import com.siwei.apply.domain.res.GyjsydjfwscdjSinglRes;
import com.siwei.apply.domain.vo.GyjsydjfwscdjUpdateVo;
import com.siwei.apply.domain.vo.GyjsydjfwscdjVo;

/**
 * 国有建设用地使用权及房屋所有权首次登记 服务接口
 */
public interface GyjsydjfwscdjService {
    /**
     * 根据项目projectId查询是否存在
     */
    Boolean isExit(String projectId);

    /**
     * 添加国有建设用地使用权及房屋所有权首次登记信息
     *
     * @param gyjsydjfwscdjVo 国有建设用地使用权及房屋所有权首次登记视图对象
     * @return 国有建设用地使用权及房屋所有权首次登记ID
     */
    String add(GyjsydjfwscdjVo gyjsydjfwscdjVo);

    /**
     * 获取国有建设用地使用权及房屋所有权首次登记信息（结果对象内含列表）
     */
    GyjsydjfwscdjRes get(String projectId);

    /**
     * 根据主键id获取单条记录，返回包含项目名称与代码的结构
     */
    GyjsydjfwscdjSinglRes getById(String id);

    /**
     * 更新国有建设用地使用权及房屋所有权首次登记信息
     *
     * @param gyjsydjfwscdjUpdateVo 国有建设用地使用权及房屋所有权首次登记更新视图对象
     */
    void update(GyjsydjfwscdjUpdateVo gyjsydjfwscdjUpdateVo);

    /**
     * 更新国有建设用地使用权及房屋所有权首次登记的上链状态
     *
     * @param id        主键ID
     * @param hasOnchain 是否上链
     */
    void updateHasOnchain(String id, Boolean hasOnchain);
}
